//
//  YYViewController.m
//  YYFileManager
//
//  Created by “” on 03/26/2025.
//  Copyright (c) 2025 “”. All rights reserved.
//

#import "YYViewController.h"
#import "CarNumberViewController.h"

@interface YYViewController ()<YBPopupMenuDelegate>

@property (nonatomic, strong) NSArray *menuTitleArr;

@end

@implementation YYViewController

/**
 
 中国有34个省。具体来说，中国共有34个省级行政区，其中包括：

 ‌‌23个省‌：河北、山西、辽宁、吉林、黑龙江、江苏、浙江、安徽、福建、江西、山东、河南、湖北、湖南、广东、海南、四川、贵州、云南、陕西、甘肃、青海、台湾。

 ‌‌5个自治区‌：内蒙古、广西、西藏、宁夏、新疆。

 ‌‌4个直辖市‌：北京、上海、天津、重庆。

 ‌‌2个特别行政区‌：香港和澳门。
 
 */

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(moreMethod:)];
    self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    
    _menuTitleArr = @[@"查看车牌号信息",
                      @"车牌号保存成JSON文件(带格式)",
                      @"车牌号保存成JSON文件(不带格式)",
                      @"车牌号保存成plist文件"];
    
    NSString *homePathString = [YYFileManager getHomeDirectory];
    self.homeInfoView.text = [NSString stringWithFormat:@"Home目录：%@",homePathString];
    NSLog(@"Home目录：%@",homePathString);
    
    
    NSString *tempPathString = [YYFileManager getTempDirectory];
    self.tempInfoView.text = [NSString stringWithFormat:@"Temp目录：%@",tempPathString];
    NSLog(@"Temp目录：%@",tempPathString);
    
    NSString *documentsPathString = [YYFileManager getDocumentsDirectory];
    self.DocumentsInfoView.text = [NSString stringWithFormat:@"Documents目录：%@",documentsPathString];
    NSLog(@"Documents目录路径：%@",documentsPathString);
    
    NSString *LibraryPathString = [YYFileManager getLibraryDirectory];
    self.LibraryInfoView.text = [NSString stringWithFormat:@"Library目录：%@",LibraryPathString];
    NSLog(@"Library目录路径：%@",LibraryPathString);
    
    NSString *CachePathString = [YYFileManager getCacheDirectory];
    self.CacheInfoView.text = [NSString stringWithFormat:@"Cache目录：%@",CachePathString];
    NSLog(@"Cache目录路径：%@",CachePathString);
    
    NSString *carInfoPlistPath = [[YYFileManager getLibraryDirectory] stringByAppendingPathComponent:@"China/Info/Car/car.plist"];
    NSLog(@"carInfoPlistPath = %@",carInfoPlistPath);
    
    
    
    NSLog(@"获取路径的组成部分：%@",[YYFileManager getPathComponents:carInfoPlistPath]);
    NSLog(@"获取路径的最后一个组成部分：%@",[YYFileManager getLastPathComponents:carInfoPlistPath]);
    NSLog(@"删除路径最后的一个组成部分：%@",[YYFileManager deleteLastPathComponents:carInfoPlistPath]);
    NSLog(@"获取路径最后部分的扩展名：%@",[YYFileManager getPathExtension:carInfoPlistPath]);
    NSLog(@"删除路径的扩展名：%@",[YYFileManager deletePathExtension:carInfoPlistPath]);
    NSLog(@"在路径后追加扩展名：%@",[YYFileManager appendingPathExtension:[YYFileManager getLibraryDirectory] withExtension:@"folder"]);
    
    
}

-(void)moreMethod:(UIBarButtonItem *)item {
    NSLog(@"[item class] = %@",[item class]);
    
    [YBPopupMenu showAtPoint:CGPointMake(kScreenWidth - 27, 80) titles:_menuTitleArr icons:nil menuWidth:120 otherSettings:^(YBPopupMenu *popupMenu) {
        popupMenu.delegate = self;
        popupMenu.itemHeight = 60;
    }];
}

- (void)ybPopupMenu:(YBPopupMenu *)ybPopupMenu didSelectedAtIndex:(NSInteger)index {
    NSString *titleString = _menuTitleArr[index];
    if ([titleString isEqualToString:@"查看车牌号信息"]) {
        CarNumberViewController *carNumberVC = [[CarNumberViewController alloc] init];
        carNumberVC.title = @"车牌号信息";
        [self.navigationController pushViewController:carNumberVC animated:YES];
    } else if ([titleString isEqualToString:@"车牌号保存成JSON文件(带格式)"]) {
        [self saveLicensePlateNumberInformationToJson];
    } else if ([titleString isEqualToString:@"车牌号保存成JSON文件(不带格式)"]) {
        [self saveLicensePlateNumberInformationToJson2];
    } else if ([titleString isEqualToString:@"车牌号保存成plist文件"]) {
        [self saveLicensePlateNumberInformation];
    } else {
        
    }
}

#pragma mark - 车牌号保存成plist文件
-(void)saveLicensePlateNumberInformation {
    NSDictionary *oneInfo = @{
        @"河南省":@[@"豫A:郑州市", @"豫V:郑州市", @"豫B:开封市", @"豫C:洛阳市", @"豫D:平顶山市", @"豫E:安阳市", @"豫F:鹤壁市", @"豫G:新乡市", @"豫H:焦作市", @"豫J:濮阳市", @"豫K:许昌市", @"豫L:漯河市", @"豫M:三门峡市", @"豫N:商丘市", @"豫R:南阳市", @"豫P:周口市", @"豫Q:驻马店市", @"豫S:信阳市", @"豫U:济源市"],
        @"河北省":@[@"冀A:石家庄市", @"冀B:唐山市", @"冀C:秦皇岛市", @"冀D:邯郸市", @"冀E:邢台市", @"冀F:保定市", @"冀G:张家口市", @"冀H:承德市", @"冀J:沧州市", @"冀R:廊坊市", @"冀T:衡水市", @"冀O:省直机关警用车辆牌照"],
        @"山西省":@[@"晋A:太原市", @"晋B:大同市", @"晋C:阳泉市", @"晋D:长治市", @"晋E:晋城市", @"晋F:朔州市", @"晋H:忻(xīn)州市", @"晋J:吕梁市", @"晋K:晋中市", @"晋L:临汾市", @"晋M:运城市"],
        @"辽宁省":@[@"辽A:沈阳市", @"辽B:大连市", @"辽C:鞍山市", @"辽D:抚顺市", @"辽E:本溪市", @"辽F:丹东市", @"辽G:锦州市", @"辽H:营口市", @"辽J:阜新市", @"辽K:辽阳市", @"辽L:盘锦市", @"辽M:铁岭市", @"辽N:朝阳市", @"辽P:葫芦岛市"],
        @"吉林省":@[@"吉A:长春市", @"吉B:吉林市", @"吉C:四平市", @"吉D:辽源市", @"吉E:通化市", @"吉F:白山市", @"吉G:白城市", @"吉H:延边朝鲜族自治州", @"吉J:松原", @"吉K:长白山保护开发区"],
        @"黑龙江省":@[@"黑A:哈尔滨市", @"黑B:齐齐哈尔市", @"黑C:牡丹江市", @"黑D:佳木斯市", @"黑E:大庆市", @"黑F:伊春市", @"黑G:鸡西市", @"黑H:鹤岗市", @"黑J:双鸭山市", @"黑K:七台河市", @"黑M:绥化市", @"黑N:黑河市", @"黑P:大兴安岭地区", @"黑R:农垦系统"],
        @"江苏省":@[@"苏A:南京市", @"苏B:无锡市", @"苏C:徐州市", @"苏D:常州市", @"苏E:苏州市", @"苏U:苏州市", @"苏F:南通市", @"苏G:连云港市", @"苏H:淮安市", @"苏J:盐城市", @"苏K:扬州市", @"苏L:镇江市", @"苏M:泰州市", @"苏N:宿迁市"],
        @"浙江省":@[@"浙A:杭州市", @"浙B:宁波市", @"浙C:温州市", @"浙D:绍兴市", @"浙E:湖州市", @"浙F:嘉兴市", @"浙G:金华市", @"浙H:衢州市", @"浙J:台州市", @"浙K:丽水市", @"浙L:舟山市"],
        @"安徽省":@[@"皖A:合肥市", @"皖B:芜湖市", @"皖C:蚌埠(bèng bù)市", @"皖D:淮南市", @"皖E:马鞍山市", @"皖F:淮北市", @"皖G:铜陵市", @"皖H:安庆市", @"皖J:黄山市", @"皖K:阜阳市", @"皖L:宿州市", @"皖M:滁州市", @"皖N:六安市", @"皖P:宣城市", @"皖R:池州市", @"皖S:豪州市"],
        @"福建省":@[@"闽A:福州市(不包括平潭县)", @"闽B:莆田市", @"闽C:泉州市", @"闽D:厦门市", @"闽E:漳州市", @"闽F:龙岩市", @"闽G:三明市", @"闽H:南平市", @"闽J:宁德市", @"闽K:省直系统和平潭综合实验区"],
        @"江西省":@[@"赣A:南昌市", @"赣B:赣州市", @"赣C:宜春市", @"赣D:吉安市", @"赣E:上饶市", @"赣F:抚州市", @"赣G:九江市", @"赣H:景德镇市", @"赣J:萍乡市", @"赣K:新余市", @"赣L:鹰潭市", @"赣M:江西省的省直系统的车牌号是赣M"],
        @"山东省":@[@"鲁A:济南市", @"鲁B:青岛市", @"鲁U:青岛市", @"鲁C:淄博市", @"鲁D:枣庄市", @"鲁E:东营市", @"鲁F:烟台市", @"鲁Y:烟台市", @"鲁G:潍(wéi)坊市", @"鲁V:潍(wéi)坊市", @"鲁H:济宁市", @"鲁J:泰安市", @"鲁K:威海市", @"鲁L:日照市", @"鲁M:滨州市", @"鲁N:德州市", @"鲁P:聊城市", @"鲁Q:临沂(yí)市", @"鲁R:菏泽市", @"鲁S:莱芜市"],
        @"湖北省":@[@"鄂A:武汉市", @"鄂B:黄石市", @"鄂C:十堰市", @"鄂D:荆州市", @"鄂E:宜昌市", @"鄂F:襄阳市", @"鄂G:鄂州市", @"鄂H:荆门市", @"鄂J:黄冈市", @"鄂K:孝感市", @"鄂L:咸宁市", @"鄂M:仙桃市", @"鄂N:潜江市", @"鄂P:神农架林区", @"鄂Q:恩施土家族苗族自治州", @"鄂R:天门市", @"鄂S:随州市"],
        @"湖南省":@[@"湘A:长沙市", @"湘B:株洲市", @"湘C:湘潭市", @"湘D:衡阳市", @"湘E:邵阳市", @"湘F:岳阳市", @"湘G:张家界市", @"湘H:益阳市", @"湘J:常德市", @"湘K:娄底市", @"湘L:郴(chēn)州市", @"湘M:永州市", @"湘N:怀化市", @"湘U:湘西土家族苗族自治州", @"湘S:省直系统"],
        @"广东省":@[@"粤A:广州市", @"粤B:深圳市", @"粤C:珠海市", @"粤D:汕头市", @"粤E:佛山市", @"粤F:韶关市", @"粤G:湛江市", @"粤H:肇庆市", @"粤J:江门市", @"粤K:茂名市", @"粤L:惠州市", @"粤M:梅州市", @"粤N:汕尾市", @"粤P:河源市", @"粤Q:阳江市", @"粤R:清远市", @"粤S:东莞市", @"粤T:中山市", @"粤U:潮州市", @"粤V:揭阳市", @"粤W:云浮市", @"粤X:佛山市顺德区", @"粤Y:佛山市南海区", @"粤Z:香港和澳门进入内地的车辆"],
        @"海南省":@[@"琼A:海口市", @"琼B:三亚市", @"琼C:琼海市", @"琼D:五指山市", @"琼E:洋浦开发区", @"琼F:儋(dān)州市"],
        @"四川省":@[@"川A:成都市", @"川G:成都市", @"川B:绵阳市", @"川C:自贡市", @"川D:攀枝花市", @"川E:泸州市", @"川F:德阳市", @"川H:广元市", @"川J:遂宁市", @"川K:内江市", @"川L:乐山市", @"川M:资阳市", @"川Q:宜宾市", @"川R:南充市", @"川S:达州市", @"川T:雅安市", @"川U:阿坝藏族羌族自治州", @"川V:甘孜藏族自治州", @"川W:凉山彝族自治州", @"川X:广安市", @"川Y:巴中市", @"川Z:眉山市"],
        @"贵州省":@[@"贵A:贵阳", @"贵B:六盘水", @"贵C:遵义", @"贵D:铜仁", @"贵E:黔西南布依族苗族自治州", @"贵F:毕节", @"贵G:安顺", @"贵H:黔东南苗族侗族自治州", @"贵J:黔南布依族苗族自治后"],
        @"云南省":@[@"云A:昆明市", @"云C:昭通市", @"云D:曲靖市", @"云E:楚雄彝族自治州", @"云F:玉溪市", @"云G:红河哈尼族彝族自治州", @"云H:文山壮族苗族自治州", @"云J:普洱市", @"云K:西双版纳傣族自治州", @"云L:大理白族自治州", @"云M:保山市", @"云N:德宏傣族景颇族自治州", @"云P:丽江市", @"云Q:怒江傈(lì)傈族自治州", @"云R:德庆藏族自治州", @"云S:临沧市"],
        @"陕西省":@[@"陝A:西安市", @"陝B:铜川市", @"陝C:宝鸡市", @"陝D:咸阳市", @"陝E:渭南市", @"陝F:汉中市", @"陝G:安康市", @"陝H:商洛市", @"陝J:延安市", @"陝K:榆林市", @"陝V:杨陵区"],
        @"甘肃省":@[@"甘A:兰州市", @"甘B:嘉峪关市", @"甘C:金昌市", @"甘D:白银市", @"甘E:天水市", @"甘F:酒泉市", @"甘G:张掖(yè)市", @"甘H:武威市", @"甘J:定西市", @"甘K:陇南市", @"甘L:平凉市", @"甘M:庆阳市", @"甘N:临夏回族自治州", @"甘P:甘南藏族自治州"],
        @"青海省":@[@"青A:西宁市", @"青B:海东市", @"青C:海北藏族自治州", @"青D:黄南藏族自治州", @"青E:海南藏族自治州", @"青F:果洛藏族自治州", @"青G:玉树藏族自治州", @"青H:海西蒙古族藏族自治州"],
        @"内蒙古":@[@"蒙A:呼和浩特", @"蒙B:包头", @"蒙C:乌海", @"蒙D:赤峰", @"蒙E:呼伦贝尔", @"蒙F:兴安盟", @"蒙G:通辽", @"蒙H:锡林郭勒盟", @"蒙J:乌兰察布", @"蒙K:鄂尔多斯", @"蒙L:巴彦淖(nào)尔", @"蒙M:阿拉善盟"],
        @"广西":@[@"桂A:南宁市", @"桂B:柳州市", @"桂C:桂林市", @"桂H:桂林市", @"桂D:梧州市", @"桂E:北海市", @"桂F:崇左市", @"桂G:来宾市", @"桂J:贺州市", @"桂K:玉林市", @"桂L:百色市", @"桂M:河池市", @"桂N:钦州市", @"桂P:防城港市", @"桂R:贵港市"],
        @"西藏":@[@"藏A:拉萨市", @"藏B:昌都市", @"藏C:山南市", @"藏D:日喀则市", @"藏E:那曲市", @"藏F:阿里地区", @"藏G:林芝市", @"藏H:代表驻四川省天全县车辆车管所", @"藏J:代表驻青海省格尔木市车辆管理所"],
        @"宁夏":@[@"宁A:银川市", @"宁B:石嘴山市", @"宁C:银南市(现已并入吴忠市)", @"宁D:固原市", @"宁E:中卫市"],
        @"新疆":@[@"新A:乌鲁木齐市", @"新B:昌吉回族自治州", @"新C:石河子市", @"新D:奎(kuí)屯市", @"新E:博尔塔拉蒙古自治州", @"新F:伊犁哈萨克自治州", @"新G:塔城地区", @"新H:阿勒泰地区", @"新J:克拉玛依市", @"新K:吐鲁番地区", @"新L:哈密市", @"新M:巴音郭楞(léng)蒙古自治州", @"新N:阿克苏地区", @"新P:克孜勒苏柯尔克孜自治州", @"新Q:喀什地区", @"新R:和田地区", @"新S:昆玉市"],
        @"北京":@[@"京A:通州区", @"京K:通州区", @"京L:通州区", @"京B:门头沟区", @"京M:门头沟区", @"京C:顺义区", @"京N:顺义区", @"京P:顺义区", @"京D:怀柔区", @"京Q:怀柔区", @"京E:密云区", @"京R:密云区", @"京F:平谷区", @"京S:平谷区", @"京G:大兴区", @"京T:大兴区", @"京H:昌平区", @"京U:昌平区", @"京V:昌平区", @"京J:延庆县", @"京W:延庆县", @"京Y:北京市远郊区"],
        @"上海":@[@"沪A:上海市区", @"沪B:上海市区", @"沪D:上海市区", @"沪E:上海市区", @"沪F:上海市区", @"沪G:上海市区", @"沪H:上海市区", @"沪J:上海市区", @"沪K:上海市区", @"沪L:上海市区", @"沪M:上海市区", @"沪C:上海郊区，且这些车辆不能进入外环线以内区域", @"沪AX:私营出租车", @"沪BX:私营出租车", @"沪DX:私营出租车", @"沪FM:普通的出租车牌照", @"沪FN:普通的出租车牌照", @"沪EN:普通的出租车牌照", @"沪GU:普通的出租车牌照", @"沪R:崇明岛、长兴岛及横沙岛，车辆不得离开这些岛屿", @"沪BZ:新能源专用车牌", @"沪DZ:新能源专用车牌"],
        @"天津":@[@"津A:公交车和警车", @"津B:滨海新区", @"津C:环城四区(东丽、西青、津南、北辰)", @"津D:汉沽区、大港区", @"津E:出租车", @"津F:武清区", @"津G:静海区", @"津H:宁河区", @"津J:蓟州区", @"津K:市区号牌", @"津L:市区号牌", @"津M:市区号牌", @"津N:市区号牌", @"津P:市区号牌", @"津Q:市区号牌", @"津R:市区号牌"],
        @"重庆":@[@"渝A:渝中区、九龙坡区、江北区、大渡口区", @"渝B:南岸区、沙坪坝区、北碚区、万盛区、双桥区、渝北区、巴南区、长寿区", @"渝C:江津区、永川区、合川区、潼南县、铜梁县、大足县、綦(qí)江县、荣昌县", @"渝D:主城区", @"渝F:万州区、梁平县、城口县、巫山县、巫溪县、忠县、开县、奉节县、云阳县", @"渝G:涪(fú)陵区、南川区、丰都县、武隆县、垫江县", @"渝H:黔江区、石柱土家族自治县、秀山土家族苗族自治县、酉阳土家族苗族自治县、彭水苗族土家族自治县"],
        @"香港":@[@"HZ:香港缩写", @"粤Z:广东省内的港澳流动人员"]
    };
    NSString *carInfoPlistPath = [[YYFileManager getLibraryDirectory] stringByAppendingPathComponent:@"China/Info/Car/car.plist"];
    NSLog(@"carInfoPlistPath = %@",carInfoPlistPath);
    BOOL isWrite = [YYFileManager saveDictionaryToFile:oneInfo WithFilePath:carInfoPlistPath];
    if (isWrite) {
        [SVProgressHUD showSuccessWithStatus:@"车牌信息写入成功"];
        NSLog(@"车牌信息写入成功");
    } else {
        [SVProgressHUD showErrorWithStatus:@"车牌信息写入失败"];
        NSLog(@"车牌信息写入失败");
    }
        
//        NSLog(@"oneInfo = %@",oneInfo);
}

#pragma mark - 车牌号保存成JSON文件(带格式)
-(void)saveLicensePlateNumberInformationToJson {
    NSString *jsonInfoPath = [[NSBundle mainBundle] pathForResource:@"carNumberLicense.plist" ofType:nil];
    NSDictionary *oneInfo = [NSDictionary dictionaryWithContentsOfFile:jsonInfoPath];
    //将字典转成JSON - 保留格式
    NSString *preserveFormatInfoString = [YYFileManager toJsonStrWithDictionary:oneInfo];
    NSLog(@"preserveFormatInfoString = %@",preserveFormatInfoString);
    BOOL isWrite = [preserveFormatInfoString writeToFile:[[YYFileManager getLibraryDirectory] stringByAppendingPathComponent:@"China/Info/Car/carInfo_PreserveFormat.json"] atomically:YES encoding:NSUTF8StringEncoding error:nil];
    if (isWrite) {
        [SVProgressHUD showSuccessWithStatus:@"车牌信息写入成功"];
        NSLog(@"车牌信息写入成功");
    } else {
        [SVProgressHUD showErrorWithStatus:@"车牌信息写入失败"];
        NSLog(@"车牌信息写入失败");
    }
}

#pragma mark - 车牌号保存成JSON文件(不带格式)
-(void)saveLicensePlateNumberInformationToJson2 {
    NSString *jsonInfoPath = [[NSBundle mainBundle] pathForResource:@"carNumberLicense.json" ofType:nil];
    NSData *json = [NSData dataWithContentsOfFile:jsonInfoPath];
    NSDictionary *oneInfo = [NSJSONSerialization JSONObjectWithData:json options:0 error:nil];
    //将字典转成JSON - 不保留格式
    NSString *notRetainFormatInfoString = [YYFileManager toJsonStrWithDictionary2:oneInfo];
    NSLog(@"notRetainFormatInfoString = %@",notRetainFormatInfoString);
    BOOL isWrite = [notRetainFormatInfoString writeToFile:[[YYFileManager getLibraryDirectory] stringByAppendingPathComponent:@"China/Info/Car/carInfo_notRetainFormat.json"] atomically:YES];
    if (isWrite) {
        [SVProgressHUD showSuccessWithStatus:@"车牌信息写入成功"];
        NSLog(@"车牌信息写入成功");
    } else {
        [SVProgressHUD showErrorWithStatus:@"车牌信息写入失败"];
        NSLog(@"车牌信息写入失败");
    }
}

- (IBAction)CopyPathMethod:(UIButton *)sender {
    NSInteger tag = sender.tag;
    if (tag == 6) {
        CarNumberViewController *carNumberVC = [[CarNumberViewController alloc] init];
        carNumberVC.title = @"车牌号信息";
        [self.navigationController pushViewController:carNumberVC animated:YES];
        return;
    }
    NSString *copyString = @"";
    switch (tag) {
        case 1:
            copyString = _homeInfoView.text;
            copyString = [copyString stringByReplacingOccurrencesOfString:@"Home目录：" withString:@""];
            break;
        case 2:
            copyString = _tempInfoView.text;
            copyString = [copyString stringByReplacingOccurrencesOfString:@"Temp目录：" withString:@""];
            break;
        case 3:
            copyString = _DocumentsInfoView.text;
            copyString = [copyString stringByReplacingOccurrencesOfString:@"Documents目录：" withString:@""];
            break;
        case 4:
            copyString = _LibraryInfoView.text;
            copyString = [copyString stringByReplacingOccurrencesOfString:@"Library目录：" withString:@""];
            break;
        case 5:
            copyString = _CacheInfoView.text;
            copyString = [copyString stringByReplacingOccurrencesOfString:@"Cache目录：" withString:@""];
            break;
        case 6:
        {
            
        }
            break;
            
        default:
            break;
    }
    [UIPasteboard generalPasteboard].string = copyString;
    
    [SVProgressHUD showSuccessWithStatus:@"复制成功"];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
